/*******************************************************************************
 * Copyright (c) 2011-11-10 @author <a href="mailto:iffiff1@hotmail.com">Tyler Chen</a>.
 * All rights reserved.
 *
 * Contributors:
 *     <a href="mailto:iffiff1@hotmail.com">Tyler Chen</a> - initial API and implementation
 ******************************************************************************/
package com.redhat.auth.ejb;

import java.util.List;

import com.dayatang.querychannel.support.Page;
import com.redhat.auth.ejb.vo.FunctionEntityTypeVO;

/**
 * @author <a href="mailto:iffiff1@hotmail.com">Tyler Chen</a> 
 * @since 2011-11-10
 */
public interface FunctionEntityTypeApplication {
	/**
	 * 保存/增加功能实体类型
	 * @param type
	 * @return
	 * @author <a href="mailto:iffiff1@hotmail.com">Tyler Chen</a> 
	 * @since 2011-11-15
	 */
	FunctionEntityTypeVO save(FunctionEntityTypeVO type);

	/**
	 * 获得一个功能实体类型
	 * @param id
	 * @return
	 * @author <a href="mailto:iffiff1@hotmail.com">Tyler Chen</a> 
	 * @since 2011-11-15
	 */
	FunctionEntityTypeVO get(long id);

	/**
	 * 删除一个功能实体类型
	 * @param id
	 * @author <a href="mailto:iffiff1@hotmail.com">Tyler Chen</a> 
	 * @since 2011-11-15
	 */
	void delete(long id);

	public List<FunctionEntityTypeVO> findRoot();

	/**
	 * 查询功能实体类型
	 * @param vo {name}
	 * @return
	 * @author <a href="mailto:iffiff1@hotmail.com">Tyler Chen</a> 
	 * @since 2011-11-16
	 */
	public List<FunctionEntityTypeVO> queryFunctionEntityType(
			FunctionEntityTypeVO vo);

	/**
	 * 分页查询功能实体类型
	 * @param vo {name}
	 * @param currentPage
	 * @param pageSize
	 * @return
	 * @author <a href="mailto:iffiff1@hotmail.com">Tyler Chen</a> 
	 * @since 2011-11-16
	 */
	public Page<FunctionEntityTypeVO> pageQueryFunctionEntityType(
			FunctionEntityTypeVO vo, int currentPage, int pageSize);
}
